//注意：不使用
const routerName=ROUTESNAME
const routers=ROUTES
function push(object) {
	//navigateTo 保留当前页面，跳转到应用内的某个页面，使用uni.navigateBack可以返回到原页面。
	
	//提供了基于页面级别的路由参数对象
	let routeParams = object.routeParams
	//提供了基于跳转过程的过程参数对象
	let passedParams = object.passedParams
	let url=getUrl(object)
	uni.navigateTo({
	    url: url, // 不影响原生的参数传递
	    // 提供了基于页面级别的路由参数对象
	    routeParams: routeParams,
	    // 提供了基于跳转过程的过程参数对象
	    passedParams: passedParams
	})
}
function replace(object) {
	//redirectTo 关闭当前页面，跳转到应用内的某个页面。
	//提供了基于页面级别的路由参数对象
	let routeParams = object.routeParams
	//提供了基于跳转过程的过程参数对象
	let passedParams = object.passedParams
	let url=getUrl(object)
	uni.redirectTo({
	    url: url, // 不影响原生的参数传递
	    // 提供了基于页面级别的路由参数对象
	    routeParams: routeParams,
	    // 提供了基于跳转过程的过程参数对象
	    passedParams: passedParams
	})
}
function replaceAll(object) {
	//reLaunch 关闭所有页面，打开到应用内的某个页面。跳转到 tabBar 页面只能使用 switchTab 跳转
	//提供了基于页面级别的路由参数对象
	let routeParams = object.routeParams
	//提供了基于跳转过程的过程参数对象
	let passedParams = object.passedParams
	let url=getUrl(object)
	uni.reLaunch({
	    url: url, // 不影响原生的参数传递
	    // 提供了基于页面级别的路由参数对象
	    routeParams: routeParams,
	    // 提供了基于跳转过程的过程参数对象
	    passedParams: passedParams
	})
}
function pushTab(object) {
	//switchTab 跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面。
	//提供了基于页面级别的路由参数对象
	let routeParams = object.routeParams
	//提供了基于跳转过程的过程参数对象
	let passedParams = object.passedParams
	let url=getUrl(object)
	uni.switchTab({
	    url: url, // 不影响原生的参数传递
	    // 提供了基于页面级别的路由参数对象
	    routeParams: routeParams,
	    // 提供了基于跳转过程的过程参数对象
	    passedParams: passedParams
	})
}
function back(delta) {
	//navigateBack 关闭当前页面，返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈，决定需要返回几层。
	//提供了基于页面级别的路由参数对象
	uni.navigateBack({
	    delta: delta
	})
}
function getUrl(object){
	let query=object.query
	let path = object.path
	let name = object.name
	let routerItem
	if(!path){
		if(name){
			routerItem=routerName[name]
			if(routerItem){
				path=routerItem.path
			}
			if(!path){
				uni.showToast({
					title: '名称：'+name+'未获取到跳转路径',
					icon: 'none',
					duration:2000
				})
				return
			}
		}else{
			uni.showToast({
				title: '跳转的路由名称（name）或者路由路径（path）必须传入其中一项',
				icon: 'none',
				duration:2000
			})
			return
		}
	}else{
		routerItem=routers[path]
	}
	if(!routerItem){
		uni.showToast({
			title: '未找到跳转的路由信息',
			icon: 'none',
			duration:2000
		})
		return
	}
	let url=path
	if(query){
		let i=0
		for(let key in query){//遍历json对象的每个key/value对,p为key
			if(i==0){
				url=url+"?"+key+"="+query[key]
			}else{
				url=url+"&"+key+"="+query[key]
			}
			i++;
		}
	}
	return url
}
module.exports = {
	push: push,
	replace: replace,
	replaceAll: replaceAll,
	pushTab: pushTab,
	back: back
}
